Currently, many enterprises attempt to deploy their workflows into cloud environments. A workflow is composed of various software services, each of which deals with various subtasks. With the advent of cloud computing, such software services can be developed as cloud-based services and executed in cloud infrastructures. By outsourcing those cloud-based services and cloud infrastructures, enterprises are able to deploy their workflows into a federation of clouds or data centers with optimized execution time and cost. The workflows deployed into a cloud-based computing architecture may suffer from sudden load surges and system crashes. This may result in some adverse user experiences, especially when multiple service workflows share common service components and then, simultaneously push loads (e.g., requests) into the common service components. To address this problem, various alternative adaptation techniques, such as, a dynamic resource provisioning technique, a prediction-based resource provisioning technique and a re-planning technique are used.
The dynamic resource provisioning technique can be implemented to meet various Service Level Agreements (SLAB). This is typically used to address a gradual increase in workload, rather than load surges that have a relatively short duration. It is impractical to apply the dynamic resource provisioning technique to such urgent situations, since it takes a considerable amount of time to provision resources dynamically, and it can be too late for such short surges.
The prediction-based resource provisioning technique can be used to meet various SLAB using workload prediction techniques. However, the prediction is often inherently too risky or conservative. When the prediction-based resource provisioning technique underestimates the size of the loads, which potentially leads to SLA violations, it must perform instant re-provisioning. On the contrary, when the prediction-based resource provisioning technique overestimates the size of the loads, it increases resource usage cost due to the over-provisioning.
The re-planning (e.g., re-deploying workflows) technique, can be used as an alternative method. However, due to various service dependencies in a workflow, service redeployment will affect the performance of all downstream service components and require their redeployment as well. This can be very expensive in terms of delay and service downtime.
In view of the foregoing, there is a need for a technique to manage such load surges.